﻿using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace MadearteNovo.Administracao.Pages
{
    public partial class Portas : System.Web.UI.Page
    {
        UserControl.MensagensErro msgErro;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                PopulaImagens();
                DeletaTemp();
            }
        }

        private void PopulaImagens()
        {
            DirectoryInfo pasta = new DirectoryInfo(Server.MapPath("/Imagens/Portas2/"));
            FileInfo[] arquivos = pasta.GetFiles();
            int cont = 0;

            DataTable dt = new DataTable();
            dt.Columns.Add("Contador");
            dt.Columns.Add("Imagem");
            dt.Columns.Add("NomeImagem");

            foreach (FileInfo file in arquivos)
            {
                DataRow dr = dt.NewRow();
                //dr["Imagem"] = file.DirectoryName + "\\" + file.Name;
                dr["Contador"] = ++cont;
                dr["Imagem"] = ResolveUrl("/Imagens/Portas2/" + file.Name);
                dr["NomeImagem"] = file.Name;

                dt.Rows.Add(dr);
            }

            grdPortas.DataSource = dt;
            grdPortas.DataBind();
        }
        private void DeletaTemp()
        {
            DirectoryInfo pasta = new DirectoryInfo(Server.MapPath("/Imagens/PortasTemp/"));
            FileInfo[] arquivos = pasta.GetFiles();

            foreach (FileInfo file in arquivos)
            {
                File.Delete(Server.MapPath("/Imagens/PortasTemp/" + file.Name));
            }
        }
        protected void btnEnviar_Click(object sender, EventArgs e)
        {
            try
            {
                if ((fupPorta.FileName.EndsWith(".jpg")) || (fupPorta.FileName.EndsWith(".png")) || (fupPorta.FileName.EndsWith(".jpeg")))
                {

                    string guid = Guid.NewGuid().ToString() + System.IO.Path.GetExtension(fupPorta.FileName);

                    Util.Imagens.SalvaUnicaImagemNoResize(fupPorta, Server.MapPath("/Imagens/PortasTemp/"), new string[] { "image/jpeg", "image/jpg", "image/png" });
                    Response.Redirect("/Administracao/Pages/Preview.aspx?ImagemPorta=" + fupPorta.FileName + "&visuPorta=sim", false);
                }
                else
                    throw new ApplicationException("Escolha um arquivo VÁLIDO!");

            }
            catch (Exception ex)
            {
                msgErro = (UserControl.MensagensErro)LoadControl("/UserControl/MensagensErro.ascx");
                msgErro.Erro = ex.Message;
                placeholder.Controls.Add(msgErro);
            }
        }


        protected void grdPortas_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            grdPortas.PageIndex = e.NewPageIndex;
            PopulaImagens();
        }

        protected void grdPortas_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                int myID = Util.Gridview.GetID(sender, e);

                switch (e.CommandName)
                {
                    case "excluir":
                        Label lbl = new Label();
                        lbl = (Label)grdPortas.Rows[myID - 1].FindControl("lblNome");
                        string nomeImg = lbl.Text.ToString();

                        if (File.Exists(Server.MapPath("/Imagens/Portas2/" + nomeImg)))
                        {
                            //File.Delete(Server.MapPath("/Imagens/Portas2/" + nomeImg));
                            Response.Redirect("/Administracao/Pages/Portas.aspx", false);
                        }
                        else
                            throw new ApplicationException("O arquivo não foi encontrado!");
                        break;
                    default:
                        break;
                }
            }
            catch (Exception ex)
            {
                msgErro = (UserControl.MensagensErro)LoadControl("/UserControl/MensagensErro.ascx");
                msgErro.Erro = ex.Message;
                placeholder.Controls.Add(msgErro);
            }
        }
    }
}